package fpt.myFileHandler;

/**
 * Messages
 * 
 * r41
 * 
 * 12 March 2010
 * 
 * This class mainly contains status messages. It is to inform both
 * the developer and the user of errors and whatnot.
 * @author Daniel De Guzman
 *
 */
public class Messages {
	public static String newline 		= 	"\n";
	public static String border 		= 	"====================================================" + newline;
	public static String thinBorder 	= 	"----------------------------------------------------" + newline;
	
	// Error Messages
	public static String errorOpen = "Open command cancelled." + newline;
	public static String errorSave ="Save command cancelled." + newline;
	public static String errorExt = "Error! File not supported." + newline;
	public static String errorK = "Error! K not found!" + newline;
	public static String errorVC = "Error! Vertex Count not found!" + newline;
	public static String errorVCCompare = "Error! Vertex Count is not equal to the number of enumerated vertices" + newline;
	public static String errorVInfo = "Error! Vertex Information enumeration invalid." + newline;
	
	// File Processing Messages, mainly for debugging
	public static String fpFileName(String s){return "File name: " + s + newline;}
	public static String fpProcInput = "Processed Input:" + newline;
	public static String fpVInfo = "Vertex Information:" + newline;
	
	// Converting parameters into debugging messages
	public static String displayK(int i){return "K: " + i + newline;}
	public static String displayVC(int i){return "Vertex Count: " + i + newline;}
	public static String displayActualVC(int i){return "Actual Number of vertices: " + i + newline;}
	public static String displayTier(int i){return "(Tier #" + i + ") ";}

	// Graph Creation Messages, mainly for debugging
	public static String gcHeader = "Graph Information: " + newline;
	public static String gcKernel = "Kernelized Graph: " + newline;
	
	// Kernelized Rules Messages, mainly for debugging
	public static String kzCovAdd = "Vertex added to Vertex Cover." + newline;
	public static String kzRuleOne = "Rule #1: Delete Isolated Vertices." + newline;
	public static String kzRuleTwo = "Rule #2: Delete Vertex of Degree 1." + newline;
	public static String kzRuleThree = "Rule #3: Delete Vertex of Degree > k. Added to Vertex Cover" + newline;
	
	// Bounded Search Tree Messages
	public static String bstHeader = "Bounded Search Tree: " + newline;
	public static String bstCovAdd = "Vertex added to Vertex Cover" + newline;
	public static String bstRuleOne = "Rule #1: Remove degree 1 vertices." + newline;
	public static String bstRuleTwo1 = "Rule #2a: Neighbours moved to cover." + newline;
	public static String bstRuleTwo2 = "Rule #2b: Vertex and its neighbours' neighbours moved to cover." + newline;
	public static String bstRuleThree1 = "Rule #3a: Added vertex to cover." + newline;
	public static String bstRuleThree2 = "Rule #3b: Neighbours added to cover." + newline;
	public static String bstFirstChildName(String name){return name + "'s First Child";}
	public static String bstSecondChildName(String name){return name + "'s Second Child";}
	
	// Instructions
	public static String instructions =
		border+
		"                Program Instructions" 				+newline+
		border+newline+
		"  1. Load file containing undirected Graph."		+newline+
		"  2. Save output (Automatically saves as RTF)."	+newline+
		"    *Note: This release only supports RTF and" 	+newline+
		"     TXT files."									+
		newline+newline+border;
	
}
